﻿#include "lvgl_project.h"


#if 1
#define project_debug(format, ...) lvgl_project_debug("[lvgl project_debug]- ",format,##__VA_ARGS__);
#else
#define project_debug_debug(format, ...) ;
#endif


__lvgl_project_data lvgl_project_data;

//lvgl_globa_text[0][system_get_Language()]
const char * lvgl_globa_text[][SYSTEM_LANGUAGE_NUM]=
{

/*0000*/	{ "暂时还没有添加", "暫時還沒有添加", "Not added yet", "null","null","null","null","null","null","null"},
/*0001*/ 	{"更新时间...","更新時間...","update time...","null","null","null","null","null","null","null"},
/*0002*/	{ "天气", "天氣", "Weather","null","null","null","null","null","null","null"},
/*0003*/	{ "B站", "B站", "bilibili","null","null","null","null","null","null","null"},
/*0004*/	{ "黄历", "黃曆", "HuangLi","null","null","null","null","null","null","null"},
/*0005*/	{ "设置", "設定", "Set","null","null","null","null","null","null","null"},
/*0006*/	{ "日历", "日曆", "Cal","null","null","null","null","null","null","null"},
/*0007*/	{ "游戏", "遊戲", "Game","null","null","null","null","null","null","null"},
/*0008*/	{ "股票", "股票", "Shares","null","null","null","null","null","null","null"},
/*0009*/	{ "视频", "視頻", "Video","null","null","null","null","null","null","null"},
/*00010*/	{ "图片", "圖片", "Photo","null","null","null","null","null","null","null"},
/*00011*/	{ "闹钟", "鬧鐘", "Alarm clock","null","null","null","null","null","null","null"},
/*00012*/	{ "计算器", "小算盘", "Calculator","null","null","null","null","null","null","null"},
/*00013*/	{ "运动", "運動", "Sport","null","null","null","null","null","null","null"},
/*00014*/	{ "时钟", "時鐘", "Clock","null","null","null","null","null","null","null"},
/*00015*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00016*/   { "哔哩哔哩", "哔哩哔哩", "bilibili",  "null","null","null","null","null","null","null"},
/*00017*/   { "粉丝:", "粉絲:", "fans:", "null","null","null","null","null","null","null"},
/*00018*/   { "播放:", "播放:", "play:",  "null","null","null","null","null","null","null"},
/*00019*/   { "关注:", "關注:", "follow:",  "null","null","null","null","null","null","null"},
/*00020*/	{ "WIFI未连接!", "WIFI未連接!", "WIFI not connected!","null","null","null","null","null","null","null"},
/*00021*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00022*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00023*/	{ "搜台中", "搜台中", "search","null","null","null","null","null","null","null"},
/*00024*/	{ "电源供电无法关机!","電源供電無法關機!", "Power supply fails to shut down!","null","null","null","null","null","null","null"},
/*00025*/	{ "开始关机!", "開始關機!", "Start Shutdown!","null","null","null","null","null","null","null"},
/*00026*/	{ "开始重启!", "開始重启!", "Reboot","null","null","null","null","null","null","null"},


/*00027*/	{ "按下刷新", "按下重繪", "press refresh","null","null","null","null","null","null","null"},
/*00028*/	{ "正在获取...","正在獲取...", "Getting...","null","null","null","null","null","null","null"},
/*00029*/	{ "超过每日可允许请求次数!","超過每日可允許請求次數", "Exceeded the allowable number of requests per day!","null","null","null","null","null","null","null"},
/*00030*/	{ "参数错误!", "參數錯誤", "Parameter error!","null","null","null","null","null","null","null"},
/*00031*/	{ "获取失败!", "獲取失敗","Get failed!","null","null","null","null","null","null","null"},
/*00032*/	{ "打开后台播放", "打開後臺播放", "Background on","null","null","null","null","null","null","null"},
/*00033*/	{ "关闭后台播放", "關閉後臺播放", "Background off","null","null","null","null","null","null","null"},
/*00034*/	{ "开始存台", "開始存臺", "Start storage","null","null","null","null","null","null","null"},
/*00035*/	{ "退出存台", "退出存臺", "Exit storage","null","null","null","null","null","null","null"},
/*00036*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00037*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00038*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00039*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00040*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00041*/	{ "null", "null", "null","null","null","null","null","null","null","null"},


/*00042*/	{ "未连接", "未連接", "Not Connected", "null","null","null","null","null","null","null"},
/*00043*/	{ "已关闭", "已關閉", "Closed", "null","null","null","null","null","null","null"},

/*00044*/	{ "今天", "今天", "Today","null","null","null","null","null","null","null"},
/*00045*/	{ "明天", "明天", "Tomorrow","null","null","null","null","null","null","null"},
/*00046*/	{ "后天", "后天", "A Tomorrow","null","null","null","null","null","null","null"},
/*00047*/	{ "null", "null", "null","null","null","null","null","null","null","null"},


/*00048*/	{ "简体中文", "简体中文", "简体中文", "null","null","null","null","null","null","null"},
/*00049*/	{ "繁体中文", "繁体中文", "繁体中文", "null","null","null","null","null","null","null"},
/*00050*/	{ "English", "English", "English", "null","null","null","null","null","null","null"},
/*00051*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00052*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00053*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00054*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00055*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00056*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00057*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00058*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00059*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00060*/	{ "null", "null", "null","null","null","null","null","null","null","null"},

/*00061*/	{ "WIFI未连接", "WIFI未連接", "WiFi Not Connected","null","null","null","null","null","null","null"},
/*00062*/	{ "WIFI已连接", "WIFI已連接", "WiFi Connected","null","null","null","null","null","null","null"},
/*00063*/	{ "WIFI已断开", "WIFI已斷開", "WiFi Disconnected","null","null","null","null","null","null","null"},
/*00064*/	{ "WIFI连接失败", "WIFI連接失敗", "WiFi connection failed","null","null","null","null","null","null","null"},
/*00065*/	{ "WIFI开始连接", "WIFI开始连接", "WiFi start connection","null","null","null","null","null","null","null"},
/*00066*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00067*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00068*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00069*/	{ "产品名:", "產品名:", "Product Name:","null","null","null","null","null"},
/*00070*/	{  "null", "null","null","null","null","null","null","null","null","null"},

/*00071*/	{ "时", "时", "H","null","null","null","null","null","null","null"},
/*00072*/	{ "分", "分", "M","null","null","null","null","null","null","null"},
/*00073*/	{ "秒", "秒", "S","null","null","null","null","null","null","null"},
/*00074*/	{ "取消", "取消", "Cancel","null","null","null","null","null","null","null"},
/*00075*/	{ "关机", "關機", "Shutdown","null","null","null","null","null","null","null"},
/*00076*/	{ "定时关机", "定時關機", "Timed Shutdown","null","null","null","null","null","null","null"},
/*00077*/	{ "倒计时中", "倒數計時中", "Countdown in progress","null","null","null","null","null","null","null"},
/*00078*/	{ "关于", "关于", "about","null","null","null","null","null","null","null"},
/*00079*/	{ "wifi名称:", "wifi名稱:", "wifi name:","null","null","null","null","null","null","null"},
/*00080*/	{ "wifi密码:", "wifi密碼:", "wifi password:","null","null","null","null","null","null","null"},

/*00081*/	{ "ip地址:", "ip地址:", "ip address:","null","null","null","null","null","null","null"},
/*00082*/	{ "bilibili ID:", "bilibili ID:", "bilibili ID:","null","null","null","null","null","null","null"},
/*00083*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00084*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00085*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00086*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00087*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00088*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00089*/	{ "null", "null", "null","null","null","null","null","null","null","null"},
/*00090*/	{ "null", "null", "null","null","null","null","null","null","null","null"},


};

void lcgl_projet_init(void)
{
	lvgl_project_data.main_group = lv_group_create();
	lv_indev_set_group(g_indev_keypad,lvgl_project_data.main_group);


}

void lvgl_group_add_obj(lv_obj_t ** obj)
{
    project_debug("add obj");
    if (*obj == NULL)
    {
        project_debug("no obj");
        return;
    }
    lv_group_add_obj(lvgl_project_data.main_group ,*obj);
}

void lvgl_group_remove_obj(lv_obj_t** obj)
{
    project_debug("del obj");
    if (*obj == NULL)
    {
        project_debug("no obj");
        return;
    }
    lv_group_remove_obj(*obj);
}

void lvgl_group_focus_obj(lv_obj_t** obj)
{
    project_debug("focus obj");
    if (*obj == NULL)
    {
        project_debug("no obj");
        return;
    }
    lv_group_focus_obj(*obj);
}

lv_obj_t* lvgl_group_get_focus_obj(void)
{
    project_debug("get focus obj");

    return lv_group_get_focused(lvgl_project_data.main_group);
}

void lvgl_group_save_focus_obj(void)
{
    project_debug("save focus obj");

    static lv_obj_t* obj = NULL;
    obj = lv_group_get_focused(lvgl_project_data.main_group);
    if(obj == NULL)
    {
        project_debug("failed");
        return;
    }
    lvgl_project_data.save_focus_obj = &obj;
}

void lvgl_group_focus_save_obj(void)
{
    project_debug("focus save obj");
    if (*lvgl_project_data.save_focus_obj == NULL)
    {
        project_debug("failed");
        return;
    }
    else
    {
        project_debug("finished");
        lvgl_group_focus_obj(*lvgl_project_data.save_focus_obj);
        lvgl_project_data.save_focus_obj = NULL;
    }
}

uint8_t lvgl_send_event(lv_obj_t** obj, lv_event_t event, void* dat)
{
    project_debug("send event");
    if (*obj == NULL)
    {
        return 1;
    }
    lv_event_send(*obj,event,dat);
    return 0;
}
uint8_t lvgl_send_event_to_focus(lv_event_t event, void* dat)
{
    project_debug("send event to focus obj");
    lv_obj_t* obj = lv_group_get_focused(lvgl_project_data.main_group);
    if(obj == NULL)
    {
        project_debug("failed");
        return 1;
    }
    lvgl_send_event(&obj, event, dat);
    project_debug("finished");
    return 0;
}


void lvgl_set_obj_hide(lv_obj_t ** obj)
{
	if (*obj == NULL)
		return;
	lv_obj_set_hidden(*obj, true);

}

void lvgl_set_obj_show(lv_obj_t ** obj)
{
	if (*obj == NULL)
		return;
	lv_obj_set_hidden(*obj, false);

}
uint8_t lvgl_task_create(lv_task_t **handel,lv_task_cb_t task_cb, uint32_t period, lv_task_prio_t prio, void * user_data)
{

	if(*handel != NULL)
	{

		return false;
	}

	*handel = lv_task_create(task_cb, period, prio, user_data);

	if (*handel == NULL)
	{
		return false;
	}

	return true;


}

void lvgl_task_delete(lv_task_t ** task)
{

	if (*task != NULL)
	{
		lv_task_del(*task);
		*task = NULL;
		//memset(task,0x00,sizeof(lv_task_t));
	}

}

void lvgl_obj_clean(lv_obj_t **obj)
{
    project_debug("clean obj");
    if(*obj)
    {
        lv_obj_clean(*obj);
    }else
    {
        project_debug("invalid obj");
    }
}
void lvgl_obj_del(lv_obj_t **obj)
{
    project_debug("del obj");
    if(*obj)
    {
        lv_obj_del(*obj);
    }else
    {
        project_debug("invalid obj");
    }
}







